package com.mcp1993.retorfit2demo;

import retrofit2.Call;
import retrofit2.http.GET;
import retrofit2.http.Query;

/**
 * Created by Administrator on 2016/12/14 0014.
 */

public interface WeatherService {
    //@Query 动态设置请求参数
    @GET("/v3/weather/now.json")
    Call<WeatherBean> weather(@Query("key")String key, @Query("location")String location);
/*

    //使用@QueryMap 动态设置请求参数
    @GET("/v3/weather/now.json")
    Call<WeatherBean> weather(@QueryMap Map<String,String> key, @QueryMap Map<String,String> location);

    //@GET内的路径可以不用写死，利用形如“{xxx}”的形式占位，然后在方法内利用@Path所注解的形参进行替换即可：
    @GET("/v3/{words}/now.json")
    Call<WeatherBean> weather(@Path("words")String words, @Query("key")String key, @Query("location")String location);
*/


    //post请求
   /*
   //@Post注解指定路径，带有@Body标志的参数是post请求所发送的请求体。
   @POST("users/new")
    Call<User> createUser(@Body User user);
    */
   /* //表单形式传递键值对
    //除了@Post注解外，还多了@FormUrlEncoded注解，表示以表单键值对形式传递，方法内部的参数以@Field标记，注解内的是key值，而传递的形参是value值。
    @FormUrlEncoded
    @POST("user/edit")
    Call<User> updateUser(@Field("first_name") String first, @Field("last_name") String last);
    */

    /*
    //表单形式传递Map键值对
    //通过@FieldMap注解标记的参数，传递一个Map集合，集合里面有多少个键值对，则形成的url就包含多少个键值对。
    @FormUrlEncoded
    @POST("user/edit")
    Call<User> updateUser(@FieldMap Map<String,String> users);
    */

   /* //上传文件需要用到的注解是@Multipart，以及@Part
    @Multipart
    @PUT("user/photo")
    Call<User> updateUser(@Part("photo") RequestBody photo, @Part("description") RequestBody description);
    */
}
